home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d13
/
perl3041.arc
/
README.1ST
< prev
next >
Wrap
Text File
|
1990-11-19
|
5KB
|
112 lines
This is the executable for Larry Wall's perl program, ported to MS-DOS.
This version is based on patch level 41, but has a number of extensions
beyond that. These extensions have been sent to the author, and will
appear in future patches. Stay tuned to USENET comp.lang.perl.
This was compiled with Microsoft C 6.0 and optimized for space:
-Oegcilsza -Gs was used. It has been tested with MS-DOS 3.3 and 4.01
on a 80386 and a 80286, but it should work even on an 8088 and with
DOS 2.x. (But it will be slow.) You will probably need 640K to
get anything done.
Perl was originally ported to MS-DOS by Diomidis Spinellis in March, 1990.
That code came out at patch level 18 and has undergone only minor changes
through patch level 41.
Perl, complete with manuals and all source code, can be obtained by
anonymous ftp from
jpl-devvax.jpl.nasa.gov (128.149.1.143).
--
Len Reed
gatech!holos0!lbr
November 19, 1990
-------------------
Enhancements in this code that are not in patch level 41.
1) Perl.exe will swap itself to disk (ideally a RAM disk in extended memory)
when running subprocesses. This applies to the -P subprocess and to
pipe subprocesses and "system" subprocesses. This recovers all but about
two K-bytes of the over 300K that perl.exe uses. See README.env for
how to control swapping.
2) MKS (Mortice Kern Systems) toolkit compatibility. Perl will accept the
extended argument list (8 K-byte or more of pre-globbed arugments) from
the MKS Korn shell, and can pass extended argument lists to subprocesses.
This is upwardly compatible from the normal 128 byte DOS conventions, and
can be disabled. Refer to README.env.
3) Subprocesses now return the proper Unix-like exit status as documented
for the system and close (a pipe) commands.
4) As in Unix, subprocesses inherit only handles 0, 1, and 2. (DOS 2.x
subprocesses inherit all handles.)
5) -P now works, at least with Microsoft C 6.0. Perl runs a perl subprocess
with script doscpp.pl. Editing this script may allow it to work for
other compilers.
6) The chdir command has been enhanced (by Tom Dinger) to allow changing the
current drive and/or the current directory. Examples:
chdir "/abc"; # change to /abc on current drive
chdir "a:"; # change default drive to A:
chdir "a:/xyz"; # change default drive to A:, then chdir to /xyz
chdir "a:qrs"; # change default drive to A:, then chdir to
# subdirectory QRS of the current A: directory
MKS Korn shell users should note that the semantics of the Korn shell
chdir are a little different. Changing drives in perl does not, as in
the ksh, return you to the root of the new drive.
7) The -i (edit in place) option now uses the renaming techniques in
os2/suffix.c
8) Globbing of incoming arguments now uses the Microsoft setargv code.
Globbing is MS-DOS, not Unix, style, so that *.* matches everything.
Only double, not single, quotes are supported, but you can put a quote
inside quotes by escaping it: perl -e "print \"hello, world\n\";"
(MKS Korn shell users use the full Unix-like syntax, of course.)
9) Control of temporary files and scripts is under environmental control
so that the executable can be moved from system to system without
recompiling. See README.env.
10) Signal handling and temporary file manipulation are married so that
the temporary files are deleted whenever perl exits.
11) The Korn shell is used to expand expressions like <*.c> if it is present.
If it is not present, perlglob.exe is used as in patch level 18. (But
note the name change from earlier versions where it was glob.exe.)
12) Various bug fixes and minor enhancements: -w now works, opendir will
now fail when it should, random numbers now work, etc.
Acute Problems
---------------
1) The perl exec command (not system, but exec) needs work. It is not
MKS compatible and may not work at all under some systems. It may
leave temporary files stranded.
2) Perl.exe uses 300 K-bytes before it even calls malloc. It probably should
be made to use overlays and certainly has to be made smaller.
Desirable Enhancements
----------------------
1) Using gdbm.
2) Use of the 64-K high memory area.
3) User-controllable use of extended memory.
4) Porting to Turbo C and Unix-dos cross compilers. (This version works
only with Microsoft C 5.x and 6.0.)
Anyone interested in working on perl.exe or with ideas for DOS perl should
write Len Reed at gatech!holos0!lbr.